// Learn TypeScript:
//  - [Chinese] http://docs.cocos.com/creator/manual/zh/scripting/typescript.html
//  - [English] http://www.cocos2d-x.org/docs/creator/manual/en/scripting/typescript.html
// Learn Attribute:
//  - [Chinese] http://docs.cocos.com/creator/manual/zh/scripting/reference/attributes.html
//  - [English] http://www.cocos2d-x.org/docs/creator/manual/en/scripting/reference/attributes.html
// Learn life-cycle callbacks:
//  - [Chinese] http://docs.cocos.com/creator/manual/zh/scripting/life-cycle-callbacks.html
//  - [English] http://www.cocos2d-x.org/docs/creator/manual/en/scripting/life-cycle-callbacks.html

import {InviteConfig} from "../config/InviteConfig";
import {NetworkConfig} from "../config/NetworkConfig";
import {ICommand} from "../../../framework/facade/ICommand";
import {wxApi} from "../../../framework/wxApi/wxApi";
import {ext} from "../../../framework/extend/Extend";

const {ccclass, property} = cc._decorator;
@ccclass("ShareAppCommand")
export default class ShareAppCommand implements ICommand {

    async execute (...args):Promise{
        return new Promise(async (resolve, reject) => {
            if (wxApi.enable){
                let menuRes = await wxApi.updateShareMenu(true);
                console.log(menuRes, "menuRes");
                let title = ext.randomElement(InviteConfig.InviteTitleGroup);
                let imageUrl = NetworkConfig.host + "/cli/image/" + ext.randomElement(InviteConfig.icon);
                let query = "v=1&d=2";
                let res = await wxApi.shareAppMessage(title, imageUrl, query);
                resolve(res);
            }
        });
    }
}
